Binary translation may be utilized to translate a code to a binary translated code. A processor may be configured to execute software in more than one instruction set architecture. One instruction set may be more efficiently processed by the processor than another instruction set. In order to take advantage of characteristics of the processor, software compiled into a first code (e.g., native architecture code) may be translated to a second code (e.g., binary translated code), and the binary translated code may be executed by the processor instead of the native architecture code. For example, software compiled into native architecture (NA) code may be translated to binary translated (BT) code for execution by the processor in order to take advantage of inherent characteristics of the processor associated with execution of the BT code, e.g., execution speed, reduced energy consumption, or other properties.
In software development, access to a history of execution of code, e.g., information that pertains to critical points, such as instruction branch points, can be helpful to debug the code, or to “tune” the code in order to achieve greater efficiency. The history (“trace”) may be created by the processor as the code is being processed. The trace can provide a record of events that have occurred during execution of the code.